Node.js একটি মডিউল ভিত্তিক আর্কিটেকচার ব্যবহার করে, যেখানে কোডের ভিন্ন ভিন্ন অংশগুলোকে আলাদা আলাদা মডিউল হিসেবে সংগঠিত করা যায়। মডিউল কনসেপ্টের মাধ্যমে কোড পুনঃব্যবহারযোগ্য, সুশৃঙ্খল এবং রক্ষণাবেক্ষণযোগ্য হয়ে ওঠে। Node.js-এ মডিউল ব্যবস্থাপনা দুটি প্রধান ধরণের: CommonJS মডিউল এবং ES6 মডিউল।
Node.js মডিউল ব্যবস্থাপনা ব্যবহারের মাধ্যমে, আপনি বিভিন্ন ফাংশনালিটি এবং কোডের লজিক আলাদা আলাদা ফাইল এবং মডিউল হিসেবে সাজাতে পারবেন, যা ডেভেলপমেন্ট প্রক্রিয়াকে সহজ ও কার্যকরী করে তোলে।
১. CommonJS মডিউল (CommonJS Modules)
Node.js এর প্রথম এবং মূল মডিউল সিস্টেম হলো CommonJS মডিউল সিস্টেম। এর মাধ্যমে আপনি একটি ফাইল থেকে অন্য ফাইলে কোড বা ফাংশন শেয়ার করতে পারেন।
CommonJS মডিউল সিস্টেমের বৈশিষ্ট্য:
require(): মডিউলকে ইনপোর্ট করতে ব্যবহার করা হয়।module.exports: মডিউল এক্সপোর্ট করতে ব্যবহার করা হয়।
উদাহরণ:
মডিউল এক্সপোর্ট করা (Exporting a module):
// math.js (মডিউল তৈরি)
const add = (a, b) => a + b;
const subtract = (a, b) => a - b;
module.exports = {
add,
subtract
};মডিউল ইম্পোর্ট করা (Importing a module):
// app.js (মডিউল ব্যবহার)
const math = require('./math'); // math.js ফাইলটি ইম্পোর্ট
console.log(math.add(5, 3)); // 8
console.log(math.subtract(10, 4)); // 6এখানে math.js ফাইলে দুটি ফাংশন (add এবং subtract) তৈরি করা হয়েছে এবং module.exports এর মাধ্যমে এগুলো এক্সপোর্ট করা হয়েছে। এরপর require('./math') দিয়ে এই মডিউলকে app.js ফাইলে ইম্পোর্ট করা হয়েছে এবং ব্যবহার করা হয়েছে।
২. ES6 মডিউল (ES6 Modules)
ES6 (ECMAScript 2015) থেকে ES6 মডিউল সিস্টেম চালু হয়েছে, যা JavaScript এর নতুন মডিউল সিস্টেম। তবে, এটি Node.js-এ পরবর্তীতে অ্যাড করা হয়েছে এবং বর্তমান সময়ের অনেক নতুন প্রকল্পে ব্যবহৃত হচ্ছে।
ES6 মডিউল ব্যবহারের জন্য import এবং export কিওয়ার্ড ব্যবহার করা হয়।
উদাহরণ:
মডিউল এক্সপোর্ট করা (Exporting a module):
// math.js (মডিউল তৈরি)
export const add = (a, b) => a + b;
export const subtract = (a, b) => a - b;মডিউল ইম্পোর্ট করা (Importing a module):
// app.js (মডিউল ব্যবহার)
import { add, subtract } from './math';
console.log(add(5, 3)); // 8
console.log(subtract(10, 4)); // 6এখানে math.js ফাইলে ফাংশনগুলো export করা হয়েছে এবং app.js ফাইলে import কিওয়ার্ড ব্যবহার করে এগুলো ইম্পোর্ট করা হয়েছে।
Note: ES6 মডিউল ব্যবহার করার জন্য আপনার Node.js প্রকল্পে "type": "module" সেট করতে হবে অথবা .mjs এক্সটেনশন ব্যবহার করতে হবে।
package.json ফাইলে "type": "module" সেট করতে:
{
"type": "module"
}৩. বিল্ট-ইন মডিউলস (Built-in Modules)
Node.js কিছু বিল্ট-ইন মডিউল প্রদান করে যা সরাসরি ব্যবহার করা যায় এবং এর জন্য কোনো ইনস্টলেশন বা এক্সটার্নাল ডিপেনডেন্সির প্রয়োজন হয় না। কিছু জনপ্রিয় বিল্ট-ইন মডিউল হলো:
http: HTTP সার্ভার তৈরি করতে ব্যবহৃত।fs: ফাইল সিস্টেমের সাথে ইন্টারঅ্যাকশন করতে ব্যবহৃত।path: ফাইল পাথ সম্পর্কিত অপারেশন করতে ব্যবহৃত।url: URL পার্সিং এবং কনস্ট্রাকশন করতে ব্যবহৃত।events: ইভেন্ট ড্রিভেন প্রোগ্রামিংয়ের জন্য ব্যবহৃত।
উদাহরণ:
http মডিউল ব্যবহার:
const http = require('http'); // HTTP মডিউল ইনপোর্ট করা
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World');
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});এখানে, http.createServer ব্যবহার করে একটি HTTP সার্ভার তৈরি করা হয়েছে এবং 3000 পোর্টে সার্ভারটি চালু হয়েছে।
৪. থার্ড-পার্টি মডিউলস (Third-party Modules)
Node.js এর একটি শক্তিশালী দিক হলো এর **নোড প্যাকেজ ম্যানেজার (NPM)**। NPM এর মাধ্যমে আপনি বিভিন্ন থার্ড-পার্টি মডিউল ইন্সটল করতে পারেন। এই মডিউলগুলি আপনাকে অনেক ধরনের ফাংশনালিটি প্রদান করে যা আপনার অ্যাপ্লিকেশনকে আরও কার্যকরী করতে সাহায্য করে।
উদাহরণ:
- Express.js: ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য ব্যবহৃত একটি জনপ্রিয় ফ্রেমওয়ার্ক।
- lodash: ইউটিলিটি ফাংশনগুলির একটি জনপ্রিয় লাইব্রেরি।
ইন্সটল করা:
npm install expressExpress.js ব্যবহার:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello, World!');
});
app.listen(3000, () => {
console.log('Server running at http://localhost:3000');
});সারাংশ
Node.js-এ মডিউল ব্যবস্থাপনা অত্যন্ত গুরুত্বপূর্ণ। আপনি CommonJS এবং ES6 মডিউল সিস্টেম ব্যবহার করে কোডের বিভিন্ন অংশকে আলাদা করতে পারেন এবং পুনঃব্যবহারযোগ্য ও সহজে রক্ষণাবেক্ষণযোগ্য অ্যাপ্লিকেশন তৈরি করতে পারেন। এছাড়া, Node.js আপনাকে বিল্ট-ইন মডিউল ও থার্ড-পার্টি মডিউল ব্যবহারের মাধ্যমে আপনার অ্যাপ্লিকেশনের কার্যকারিতা বাড়ানোর সুযোগ প্রদান করে।
Node.js একটি শক্তিশালী মডিউল সিস্টেম প্রদান করে, যা কোড পুনরায় ব্যবহারযোগ্য এবং সংগঠিত রাখতে সাহায্য করে। মডিউল সিস্টেমের মাধ্যমে আপনি আলাদা আলাদা ফাংশনালিটি বা কোড ব্লককে পৃথকভাবে সংরক্ষণ করতে পারেন এবং সহজে পুনঃব্যবহার করতে পারেন। Node.js এর মডিউল সিস্টেম CommonJS মডিউল সিস্টেমের উপর ভিত্তি করে তৈরি, যেখানে আপনি মডিউলগুলো তৈরি, রপ্তানি (export), এবং আমদানি (import) করতে পারেন।
Node.js মডিউল সিস্টেমের প্রধান বৈশিষ্ট্যসমূহ
- মডিউল তৈরি করা (Creating a Module):
Node.js এ একটি মডিউল সাধারণত একটি JavaScript ফাইল হিসেবে তৈরি করা হয়। আপনি কোনো ফাংশন, ভেরিয়েবল বা অবজেক্ট তৈরি করে সেগুলোকে রপ্তানি (export) করতে পারেন। - মডিউল রপ্তানি (Exporting a Module):
Node.js এmodule.exportsএবংexportsব্যবহার করে মডিউল রপ্তানি করা হয়। এটি অন্য ফাইলে ব্যবহারযোগ্য ফাংশন বা ভেরিয়েবল তৈরি করতে সাহায্য করে। - মডিউল আমদানি (Importing a Module):
আপনি Node.js এরrequire()ফাংশন ব্যবহার করে অন্য মডিউলকে আমদানি (import) করতে পারেন। - Core Modules:
Node.js এর কিছু বিল্ট-ইন মডিউল রয়েছে যা সাধারণত ব্যবহৃত হয়, যেমনfs,http,path,url, ইত্যাদি।
১. মডিউল তৈরি করা (Creating a Module)
একটি নতুন মডিউল তৈরি করতে, আপনি সাধারণভাবে একটি নতুন JavaScript ফাইল তৈরি করবেন, যেখানে আপনার কোড থাকবে। উদাহরণস্বরূপ, একটি সিম্পল মডিউল তৈরি করা যাক:
math.js (মডিউল ফাইল):
// math.js
// দুটি সংখ্যা যোগ করার ফাংশন
function add(a, b) {
return a + b;
}
// দুটি সংখ্যা বিয়োগ করার ফাংশন
function subtract(a, b) {
return a - b;
}
// মডিউল রপ্তানি
module.exports = {
add,
subtract
};এখানে, add এবং subtract দুটি ফাংশন তৈরি করা হয়েছে এবং সেগুলোকে module.exports এর মাধ্যমে রপ্তানি করা হয়েছে।
২. মডিউল আমদানি (Importing a Module)
এখন, আপনি অন্য একটি JavaScript ফাইল থেকে math.js মডিউলটিকে require() ব্যবহার করে আমদানি করতে পারেন।
app.js (আমদানি ফাইল):
// math.js মডিউল আমদানি
const math = require('./math');
// ফাংশন ব্যবহার করা
let sum = math.add(5, 3);
let difference = math.subtract(5, 3);
console.log("Sum:", sum); // Sum: 8
console.log("Difference:", difference); // Difference: 2এখানে, require('./math') এর মাধ্যমে math.js মডিউলটিকে আমদানি করা হয়েছে, এবং তারপর add এবং subtract ফাংশনগুলিকে ব্যবহার করা হয়েছে।
৩. Core Modules
Node.js এর অনেক বিল্ট-ইন (core) মডিউল রয়েছে, যেগুলি আপনার প্রকল্পে সহজেই ব্যবহার করা যায়। এগুলির মধ্যে কিছু উদাহরণ:
fs(File System): ফাইল সিস্টেমের সাথে কাজ করার জন্য।http: HTTP সার্ভার তৈরি করার জন্য।path: ফাইল এবং ডিরেক্টরির পথ পরিচালনা করার জন্য।url: URL সম্পর্কিত কাজের জন্য।
উদাহরণ হিসেবে, একটি HTTP সার্ভার তৈরি করা:
// http মডিউল ব্যবহার করে একটি HTTP সার্ভার তৈরি করা
const http = require('http');
const server = http.createServer((req, res) => {
res.write('Hello, World!');
res.end();
});
server.listen(3000, () => {
console.log('Server is running at http://localhost:3000/');
});এখানে, http.createServer এর মাধ্যমে একটি HTTP সার্ভার তৈরি করা হয়েছে এবং তা 3000 পোর্টে রান করছে।
৪. NPM মডিউল (Third-party Modules)
Node.js এর সাথে একটি প্যাকেজ ম্যানেজার রয়েছে যার নাম NPM (Node Package Manager), যা আপনি তৃতীয় পক্ষের মডিউল ইনস্টল এবং ব্যবহারে সহায়তা করে। উদাহরণস্বরূপ, express একটি জনপ্রিয় HTTP ফ্রেমওয়ার্ক, যেটি NPM দিয়ে ইনস্টল এবং ব্যবহার করা যেতে পারে।
- NPM এর মাধ্যমে মডিউল ইনস্টল করা:
npm install express- Express মডিউল ব্যবহার করা:
// Express মডিউল ব্যবহার করে HTTP সার্ভার তৈরি করা
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello, Express!');
});
app.listen(3000, () => {
console.log('Server is running at http://localhost:3000/');
});এখানে, express মডিউলটি NPM থেকে ইনস্টল করা হয়েছে এবং ব্যবহার করা হয়েছে।
৫. module.exports এবং exports
module.exports এবং exports এর মধ্যে কিছু পার্থক্য রয়েছে, তবে সাধারণত আপনি module.exports ব্যবহার করবেন যখন আপনি মডিউলে একক কিছু রপ্তানি করতে চান। exports সাধারণত একাধিক ফাংশন বা প্রপার্টি রপ্তানি করার জন্য ব্যবহৃত হয়।
উদাহরণ:
// exports ব্যবহার করে
exports.add = (a, b) => a + b;
// module.exports ব্যবহার করে
module.exports.subtract = (a, b) => a - b;যদিও exports এবং module.exports এর মধ্যে কিছুটা পার্থক্য থাকতে পারে, তবে আপনি সাধারণভাবে module.exports ব্যবহার করবেন একক মান রপ্তানি করার জন্য।
সারাংশ
Node.js এর মডিউল সিস্টেম একটি শক্তিশালী ও প্রয়োজনীয় ফিচার যা কোড পুনঃব্যবহারযোগ্য এবং সংগঠিত রাখার জন্য ব্যবহৃত হয়। মডিউল তৈরি, রপ্তানি (export), এবং আমদানি (import) করা খুব সহজ এবং এটি প্রোগ্রামিংয়ের দক্ষতা বৃদ্ধি করে। আপনি Node.js এর core modules থেকে শুরু করে তৃতীয় পক্ষের NPM modules ব্যবহার করে কার্যকরী অ্যাপ্লিকেশন তৈরি করতে পারবেন।
Node.js অনেকগুলি Core Modules সরবরাহ করে, যেগুলি Node.js অ্যাপ্লিকেশন তৈরি করার জন্য অত্যন্ত গুরুত্বপূর্ণ। এই মডিউলগুলির মাধ্যমে আপনি ফাইল সিস্টেম পরিচালনা, ওয়েব সার্ভার তৈরি, পাথ হ্যান্ডলিং এবং অন্যান্য প্রয়োজনীয় কার্যকলাপ সহজে করতে পারেন। এখানে আমরা কিছু গুরুত্বপূর্ণ Node.js Core Modules সম্পর্কে আলোচনা করব: fs, path, এবং http।
১. fs (File System)
fs মডিউল ফাইল সিস্টেমের সাথে কাজ করার জন্য ব্যবহৃত হয়। এর মাধ্যমে আপনি ফাইল পড়া, লেখার, ফাইল ডিলিট করা, ডিরেক্টরি তৈরি ইত্যাদি কাজ করতে পারেন। fs মডিউলটি অ্যাসিনক্রোনাস এবং সিনক্রোনাস (Sync) অপারেশন সমর্থন করে।
কিছু সাধারণ ফাংশন:
fs.readFile(): ফাইল পড়তে ব্যবহৃত হয়।fs.writeFile(): ফাইল লেখার জন্য ব্যবহৃত হয়।fs.appendFile(): ফাইলের শেষে নতুন ডাটা যোগ করতে ব্যবহৃত হয়।fs.unlink(): ফাইল ডিলিট করতে ব্যবহৃত হয়।
উদাহরণ:
const fs = require('fs');
// ফাইল লেখা
fs.writeFile('example.txt', 'Hello, this is a test file!', (err) => {
if (err) {
console.log('Error writing file:', err);
} else {
console.log('File written successfully!');
}
});
// ফাইল পড়া
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.log('Error reading file:', err);
} else {
console.log('File data:', data);
}
});২. path (Path Module)
path মডিউল ফাইল এবং ডিরেক্টরির পাথ হ্যান্ডলিংয়ের জন্য ব্যবহৃত হয়। এটি প্ল্যাটফর্ম-নিরপেক্ষ পাথ রেজলিউশন এবং পাথ কম্পোজিশন করতে সাহায্য করে।
কিছু সাধারণ ফাংশন:
path.join(): পাথের বিভিন্ন অংশকে একত্রিত করতে ব্যবহৃত হয়।path.resolve(): পাথের পূর্ণতা নির্ধারণ করে।path.basename(): ফাইল বা ডিরেক্টরির নাম বের করে।path.dirname(): ডিরেক্টরির নাম বের করে।path.extname(): ফাইল এক্সটেনশন বের করে।
উদাহরণ:
const path = require('path');
// পাথ যোগ করা
let fullPath = path.join('/users', 'john', 'documents');
console.log(fullPath); // Output: /users/john/documents
// পাথ রেজলভ করা
let resolvedPath = path.resolve('docs', 'index.html');
console.log(resolvedPath); // Output: /users/john/docs/index.html (depending on your directory structure)
// ফাইল এক্সটেনশন বের করা
let ext = path.extname('example.txt');
console.log(ext); // Output: .txt৩. http (HTTP Module)
http মডিউল Node.js এ HTTP সার্ভার এবং ক্লায়েন্ট তৈরি করার জন্য ব্যবহৃত হয়। আপনি এর মাধ্যমে HTTP রিকোয়েস্ট এবং রেসপন্স হ্যান্ডল করতে পারবেন, ওয়েব সার্ভার চালাতে পারবেন এবং API কল করতে পারবেন।
কিছু সাধারণ ফাংশন:
http.createServer(): HTTP সার্ভার তৈরি করতে ব্যবহৃত হয়।http.get(): HTTP GET রিকোয়েস্ট পাঠাতে ব্যবহৃত হয়।http.request(): HTTP রিকোয়েস্ট তৈরি করতে ব্যবহৃত হয়।
উদাহরণ:
const http = require('http');
// একটি সহজ HTTP সার্ভার তৈরি করা
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, this is a simple HTTP server!\n');
});
server.listen(3000, () => {
console.log('Server is running at http://localhost:3000/');
});এখানে, সার্ভার localhost:3000 পোর্টে রান করবে এবং যেকোনো রিকোয়েস্টের জন্য "Hello, this is a simple HTTP server!" বার্তা পাঠাবে।
৪. url (URL Module)
url মডিউল URL প্যার্স এবং ইউটিলিটি ফাংশন প্রদান করে, যেমন URL এর বিভিন্ন অংশ (প্রটোকল, হোস্ট, পাথ, কুয়েরি প্যারামিটার ইত্যাদি) বের করা।
উদাহরণ:
const url = require('url');
// URL প্যার্স করা
const myUrl = new URL('https://example.com:8080/pathname?query=123#hash');
console.log(myUrl.hostname); // Output: example.com
console.log(myUrl.pathname); // Output: /pathname
console.log(myUrl.search); // Output: ?query=123৫. events (Events Module)
events মডিউল ইভেন্ট-ড্রিভেন অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে। এটি ইভেন্টগুলি ট্রিগার এবং হ্যান্ডেল করার জন্য ব্যবহার হয়।
উদাহরণ:
const EventEmitter = require('events');
// একটি নতুন ইভেন্ট ইমিটারের উদাহরণ তৈরি করা
const myEmitter = new EventEmitter();
// একটি ইভেন্ট লিসেনার যোগ করা
myEmitter.on('event', () => {
console.log('An event has occurred!');
});
// ইভেন্ট ট্রিগার করা
myEmitter.emit('event');সারাংশ
Node.js এর Core Modules এর মধ্যে fs, path, http ইত্যাদি কিছু গুরুত্বপূর্ণ মডিউল রয়েছে যা সার্ভার সাইড অ্যাপ্লিকেশন তৈরি এবং ফাইল সিস্টেম পরিচালনা করতে ব্যবহৃত হয়। এগুলি ডেভেলপারদের জন্য সহজেই অ্যাপ্লিকেশন তৈরি ও পরিচালনা করার সুযোগ প্রদান করে, যেমন ফাইল পড়া/লেখা, পাথ হ্যান্ডলিং, HTTP সার্ভার তৈরি ইত্যাদি।
External Modules হল Node.js এর বাইরের প্যাকেজ বা লাইব্রেরি যা আপনার অ্যাপ্লিকেশনের কার্যকারিতা বৃদ্ধি করতে সাহায্য করে। এগুলো সাধারণত npm (Node Package Manager) দ্বারা পরিচালিত হয়, যা সহজে বিভিন্ন মডিউল ইনস্টল করতে এবং ব্যবস্থাপনা করতে সাহায্য করে।
১. External Modules ব্যবহার
Node.js এর মধ্যে কিছু বিল্ট-ইন মডিউল যেমন http, fs, path, url ইত্যাদি রয়েছে। তবে, External Modules হল তৃতীয় পক্ষের তৈরি প্যাকেজ যা আপনি npm এর মাধ্যমে ইনস্টল করতে পারেন এবং আপনার প্রজেক্টে ব্যবহার করতে পারেন। এসব মডিউল প্রজেক্টের কার্যকারিতা বাড়াতে যেমন ডেটাবেস সংযোগ, HTTP রিকোয়েস্ট ম্যানেজমেন্ট, ফাইল সিস্টেম পরিচালনা ইত্যাদি কাজে ব্যবহৃত হয়।
External Module ব্যবহার করার উদাহরণ:
express মডিউল ব্যবহার:
expressহলো সবচেয়ে জনপ্রিয় ওয়েব ফ্রেমওয়ার্ক যা Node.js এ ওয়েব অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়।প্রথমে
expressইনস্টল করতে হবে এবং তারপর এটি ব্যবহার করতে পারবেন:
২. npm এর মাধ্যমে মডিউল ইন্সটল করা
npm (Node Package Manager) ব্যবহার করে আপনি সহজেই বাইরের মডিউল ইনস্টল করতে পারেন। npm ব্যবহার করার মাধ্যমে আপনি Node.js প্রজেক্টে প্রয়োজনীয় মডিউল এবং লাইব্রেরি ইনস্টল, আপডেট এবং ম্যানেজ করতে পারবেন। নিচে npm ব্যবহার করে মডিউল ইনস্টল করার প্রক্রিয়া আলোচনা করা হলো:
১. নতুন প্রজেক্ট তৈরি করা:
প্রথমে একটি নতুন Node.js প্রজেক্ট তৈরি করতে হবে। এটি করতে নিচের কমান্ড ব্যবহার করুন:
mkdir my-node-project
cd my-node-project
npm init -yএটি একটি package.json ফাইল তৈরি করবে, যা প্রজেক্টের মেটা ডেটা এবং ডিপেনডেন্সি ট্র্যাক করবে।
২. npm install কমান্ড ব্যবহার:
npm এর মাধ্যমে মডিউল ইনস্টল করতে npm install <module-name> কমান্ড ব্যবহার করা হয়।
উদাহরণস্বরূপ, express মডিউল ইনস্টল করার জন্য:
npm install expressএটি node_modules ফোল্ডারে express মডিউল ইনস্টল করবে এবং package.json ফাইলে এটি একটি ডিপেনডেন্সি হিসেবে যুক্ত করবে।
৩. গ্লোবাল মডিউল ইনস্টল করা:
কিছু মডিউল গ্লোবালি ইনস্টল করা হয় যাতে সেগুলো কম্পিউটারের যেকোনো প্রজেক্টে ব্যবহার করা যায়। গ্লোবালি মডিউল ইনস্টল করতে -g ফ্ল্যাগ ব্যবহার করা হয়:
npm install -g nodemonএটি nodemon ইনস্টল করবে, যা আপনার Node.js অ্যাপ্লিকেশন স্বয়ংক্রিয়ভাবে রি-স্টার্ট করবে যখন কোডে পরিবর্তন হবে।
৪. ডিপেনডেন্সি হিসেবে ইনস্টল করা:
একই মডিউলকে প্রজেক্টের ডিপেনডেন্সি হিসেবে ইনস্টল করতে:
npm install <module-name> --save--save ফ্ল্যাগ দিয়ে npm জানায় যে, এটি আপনার package.json ফাইলে ডিপেনডেন্সি হিসেবে সংরক্ষণ করবে।
৫. npm install --save-dev:
যদি আপনি এমন কোনো টুল ইনস্টল করতে চান যা শুধুমাত্র ডেভেলপমেন্ট পরিবেশে প্রয়োজন, তবে --save-dev ফ্ল্যাগ ব্যবহার করুন:
npm install mocha --save-devএটি Mocha (একটি টেস্টিং ফ্রেমওয়ার্ক) মডিউল ডেভেলপমেন্ট ডিপেনডেন্সি হিসেবে ইনস্টল করবে।
৬. প্যাকেজ ইনস্টলেশন চেক করা:
কোনো নির্দিষ্ট মডিউল ইনস্টল হয়েছে কিনা তা যাচাই করতে:
npm list <module-name>এছাড়া, সব ইনস্টল করা প্যাকেজ দেখতে:
npm list৭. প্যাকেজ.json ফাইল:
package.json ফাইলটি আপনার প্রজেক্টের সকল ইনস্টল করা প্যাকেজ ও তাদের ভার্সন ট্র্যাক করে। এটি আপনার প্রজেক্টে সকল ডিপেনডেন্সি সংরক্ষণ করে এবং সহজেই অন্যদের মধ্যে শেয়ার করা যায়। উদাহরণস্বরূপ:
{
"name": "my-node-project",
"version": "1.0.0",
"description": "A simple Node.js project",
"main": "index.js",
"dependencies": {
"express": "^4.17.1"
},
"devDependencies": {
"nodemon": "^2.0.7"
},
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js"
}
}৮. প্যাকেজ আনইনস্টল করা:
যদি কোনো প্যাকেজ আর প্রয়োজন না হয়, তবে আপনি তা আনইনস্টল করতে পারেন:
npm uninstall <module-name>এটি node_modules ফোল্ডার থেকে প্যাকেজ মুছে দেবে এবং package.json ফাইল থেকেও ডিপেনডেন্সি মুছে ফেলবে।
সারাংশ
External Modules হল Node.js এর বাইরের প্যাকেজ এবং লাইব্রেরি যা npm (Node Package Manager) দ্বারা পরিচালিত হয়। npm ব্যবহার করে আপনি সহজে মডিউল ইনস্টল, আপডেট, এবং ম্যানেজ করতে পারেন। npm এর মাধ্যমে বাইরের মডিউল ইনস্টল করার প্রক্রিয়া খুবই সহজ এবং এই মডিউলগুলো আপনার অ্যাপ্লিকেশনের কার্যকারিতা বৃদ্ধি করতে সাহায্য করে, যেমন ওয়েব ফ্রেমওয়ার্ক (Express), ডেটাবেস ম্যানেজমেন্ট, লগিং, টেস্টিং ইত্যাদি।
Node.js এ Custom মডিউল তৈরি করা এবং Export করা খুবই সহজ। এটি আপনাকে কোডকে ছোট, পুনঃব্যবহারযোগ্য অংশে বিভক্ত করতে সহায়তা করে, যাতে আপনি বিভিন্ন জায়গায় একই কোড ব্যবহার করতে পারেন। Node.js এ মডিউল তৈরি ও ব্যবহারের জন্য দুটি প্রধান কৌশল হল:
- Module.exports বা exports
- require() এর মাধ্যমে মডিউল ইম্পোর্ট করা
এখানে Custom মডিউল তৈরি ও Export করার পদ্ধতি বিস্তারিতভাবে দেখানো হল।
১. Custom মডিউল তৈরি করা
প্রথমে একটি নতুন ফাইল তৈরি করে তাতে আপনার কাস্টম মডিউল লেখুন। ধরুন, আমরা একটি greet.js নামক ফাইল তৈরি করছি যা একটি ফাংশন সংজ্ঞায়িত করবে, এবং সেটি অন্য ফাইলে ব্যবহার করা হবে।
greet.js (Custom মডিউল)
// greet.js ফাইলে একটি ফাংশন তৈরি করা হচ্ছে
function greet(name) {
return `Hello, ${name}!`;
}
// greet ফাংশনটি export করা হচ্ছে
module.exports = greet;এখানে, greet.js ফাইলে একটি greet নামক ফাংশন তৈরি করা হয়েছে এবং এটি module.exports এর মাধ্যমে export করা হয়েছে।
২. Custom মডিউল ইম্পোর্ট করা
এখন, আপনি এই কাস্টম মডিউলটি অন্য কোথাও ব্যবহার করতে পারেন। সাধারণত, আপনি require() ফাংশন ব্যবহার করে কাস্টম মডিউলটি ইম্পোর্ট করবেন।
app.js (মডিউল ইম্পোর্ট এবং ব্যবহার)
// greet.js মডিউলটি require() ব্যবহার করে ইম্পোর্ট করা হচ্ছে
const greet = require('./greet');
// greet ফাংশনটি কল করা হচ্ছে
console.log(greet('John')); // Output: Hello, John!এখানে, require('./greet') মডিউলটি greet.js ফাইল থেকে ইম্পোর্ট করা হয়েছে এবং greet ফাংশনটি কল করা হয়েছে, যা আর্গুমেন্ট হিসেবে নাম গ্রহণ করে একটি শুভেচ্ছা বার্তা রিটার্ন করবে।
৩. Multiple Exports (একাধিক এক্সপোর্ট)
কখনও কখনও, একটি মডিউলে একাধিক ফাংশন বা ভেরিয়েবল এক্সপোর্ট করার প্রয়োজন হয়। সেক্ষেত্রে, আপনি একটি অবজেক্টের মাধ্যমে একাধিক এক্সপোর্ট করতে পারেন।
math.js (Multiple Exports)
// কয়েকটি ফাংশন তৈরি করা
function add(a, b) {
return a + b;
}
function subtract(a, b) {
return a - b;
}
function multiply(a, b) {
return a * b;
}
// একাধিক ফাংশন export করা হচ্ছে
module.exports = {
add,
subtract,
multiply
};এখানে, add, subtract, এবং multiply তিনটি ফাংশন তৈরি করা হয়েছে এবং এগুলো একটি অবজেক্ট হিসেবে export করা হয়েছে।
app.js (Multiple Exports ইম্পোর্ট করা)
// math.js থেকে একাধিক ফাংশন ইম্পোর্ট করা হচ্ছে
const math = require('./math');
// ফাংশনগুলো ব্যবহার করা হচ্ছে
console.log(math.add(2, 3)); // Output: 5
console.log(math.subtract(5, 3)); // Output: 2
console.log(math.multiply(4, 3)); // Output: 12এখানে, আমরা math.js মডিউলটি ইম্পোর্ট করেছি এবং তারপর এক্সপোর্ট করা ফাংশনগুলো ব্যবহার করেছি।
৪. Default Export ব্যবহার করা
কখনও কখনও, আপনি একক এক্সপোর্ট করতে চাইলে module.exports এর মাধ্যমে সরাসরি একটি একক ভ্যালু বা ফাংশন এক্সপোর্ট করতে পারেন। এটি default export হিসাবে পরিচিত।
greetDefault.js (Default Export)
// একক ফাংশন export করা হচ্ছে
module.exports = function greet(name) {
return `Hello, ${name}!`;
};এখানে, একটি ফাংশন সরাসরি module.exports এর মাধ্যমে এক্সপোর্ট করা হয়েছে।
app.js (Default Export ইম্পোর্ট করা)
// greetDefault.js থেকে ডিফল্ট এক্সপোর্ট ইম্পোর্ট করা হচ্ছে
const greet = require('./greetDefault');
// greet ফাংশনটি কল করা হচ্ছে
console.log(greet('John')); // Output: Hello, John!এখানে, require('./greetDefault') থেকে সরাসরি ডিফল্ট এক্সপোর্ট করা ফাংশনটি ইম্পোর্ট করা হয়েছে।
৫. ES6 Modules (ESM) ব্যবহার করা
Node.js 12 এবং পরবর্তী সংস্করণগুলোতে ES6 modules বা import/export সিনট্যাক্সও সমর্থিত। তবে, এটি ব্যবহার করতে হলে আপনাকে .mjs এক্সটেনশন ব্যবহার করতে হবে অথবা type: "module" সেটিংটি package.json এ নির্দিষ্ট করতে হবে।
math.mjs (ES6 Modules)
// ES6 Syntax দিয়ে একাধিক এক্সপোর্ট
export function add(a, b) {
return a + b;
}
export function subtract(a, b) {
return a - b;
}app.mjs (ES6 Modules ইম্পোর্ট করা)
// ES6 Syntax দিয়ে মডিউল ইম্পোর্ট করা
import { add, subtract } from './math.mjs';
console.log(add(2, 3)); // Output: 5
console.log(subtract(5, 3)); // Output: 2এখানে, আমরা import এবং export সিনট্যাক্স ব্যবহার করে মডিউল তৈরি এবং ইম্পোর্ট করেছি।
সারাংশ
- module.exports এবং exports ব্যবহার করে আপনি আপনার কাস্টম মডিউল তৈরি এবং এক্সপোর্ট করতে পারেন।
- আপনি একটি ফাংশন বা একাধিক ফাংশন এবং ভেরিয়েবল একটি অবজেক্টের মাধ্যমে এক্সপোর্ট করতে পারেন।
require()ফাংশন ব্যবহার করে আপনার কাস্টম মডিউল ইম্পোর্ট করে ব্যবহারের জন্য প্রস্তুত করতে পারেন।- ES6 modules (import/export) সিনট্যাক্স Node.js এ সমর্থিত, তবে এটি ব্যবহার করতে কিছু কনফিগারেশন প্রয়োজন হতে পারে।
এইভাবে, আপনি আপনার কোডকে পুনঃব্যবহারযোগ্য অংশে বিভক্ত করতে পারেন এবং সহজে বিভিন্ন ফাইল বা প্রজেক্টে মডিউল ব্যবহার করতে পারবেন।
Read more